#include "encoder.h"
#include "motor.h"
#include "main.h"       // <-- 1. 关键！包含您自己的 main.h 以获取编码器宏定义

extern motor_param_t motor_l, motor_r;

// <-- 2. 删除了所有旧的 ENCODERx_QTIMER 宏定义，因为我们现在使用 main.h 里的

void encoder_init(void) {
    // <-- 3. 使用您熟悉的逐飞框架函数进行初始化
    encoder_quad_init(ENCODER_1, ENCODER_1_A, ENCODER_1_B);
    encoder_quad_init(ENCODER_2, ENCODER_2_A, ENCODER_2_B);
}

// 低通滤波系数保持不变
float low_pass = 0.8;

void encoder_get(void) {
    // <-- 4. 核心修改：用您已有的函数替换 qtimer 函数
    
    // 左轮电机
    // 我们从您旧的 isr.c 得知，左轮前进时为正值
    motor_l.encoder_raw = +encoder_get_count(ENCODER_1); 
    motor_l.encoder_speed = motor_l.encoder_speed * low_pass + motor_l.encoder_raw * (1 - low_pass);
    motor_l.total_encoder += motor_l.encoder_raw;
    encoder_clear_count(ENCODER_1);

    // 右轮电机
    // 我们从您旧的 isr.c 得知，右轮需要加负号才能保证前进时为正值
    motor_r.encoder_raw = -encoder_get_count(ENCODER_2);
    motor_r.encoder_speed = motor_r.encoder_speed * low_pass + motor_r.encoder_raw * (1 - low_pass);
    motor_r.total_encoder += motor_r.encoder_raw;
    encoder_clear_count(ENCODER_2);
}